<template>
  <input v-model="model" />
</template>
<script setup>
import { getCurrentInstance } from 'vue'
// getCurrentInstance这个函数来返回当前组件的实例对象,也就是当前vue这个实例对象
// Vue2中，可以通过this来获取当前组件实例；
// Vue3中，在setup中无法通过this获取组件实例，console.log(this)打印出来的值是undefined。
const {
  proxy: { $forceUpdate }
} = getCurrentInstance()
const [model, modifiers] = defineModel({
  required: true,
  set(value) {
    if (modifiers.filterNumber) {
      $forceUpdate()  // 用于强制Vue组件重新渲染
      return value.replace(/\D/g, '')
    }
    return value
  }
})
</script>
